package com.mask.im.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mask.im.business.model.entity.chat.IMChatListDO;
import com.mask.im.business.model.entity.chat.IMFriendChatMessageDO;
import com.mask.im.business.model.entity.chat.IMGroupChatDO;
import com.mask.im.business.model.vo.IMChatListVO;
import com.mask.im.business.common.model.RestResponse;

import java.util.List;

/**
 * 好友列表管理
 *
 * @author jian
 */
public interface IMChatListService extends IService<IMChatListDO> {
    /**
     * 根据id创建对应的chat信息
     *
     * @param id   对应的好友id还是群聊id
     * @param type 0:好友,1:群聊
     */
    void creatChatData(Long id, Integer type);

    /**
     * 根据搜索条件获取对应的聊天数据
     *
     * @param keyword
     * @return 聊天列表
     */
    RestResponse<List<IMChatListVO>> getChatList(String keyword);

    /**
     * 简历好友对应的chat
     *
     * @param userIdA
     * @param userIdB
     */
    void createSingleChatSession(Long userIdA, Long userIdB);

    /**
     * 更新最后的消息
     *
     * @param chatMessageDO
     */
    void updateChatLastMessage(IMFriendChatMessageDO chatMessageDO);

    /**
     * 创建群组对应chatList
     *
     * @param imGroupChat
     * @param userInfoIds
     */
    void createGroupChatList(IMGroupChatDO imGroupChat, List<Long> userInfoIds);

    /**
     * 清空消息未读
     *
     * @param friendId
     */
    void clearUnreadCount(Long friendId);
}
